home *** CD-ROM | disk | FTP | other *** search
/ Stone Design / Stone Design.iso / Stone_Friends / Wave / WavesWorld / Source / Shaders / RCShaders / RCChecker.sl < prev    next >
Encoding:
Text File  |  1995-03-22  |  559 b   |  32 lines

  1. /* Listing 16.12  Surface shader providing checkerboard pattern*/
  2. /* 
  3.  * checker(): surface shader for applying a checkerboard pattern.
  4.  */
  5. surface 
  6. RCChecker(
  7.     float    Kd          = .5, 
  8.         Ka          = .1, 
  9.         frequency     = 10;
  10.     color    blackcolor    = color (0,0,0) )
  11. {
  12.     float    smod = mod(s*frequency,1),
  13.         tmod = mod(t*frequency,1);
  14.  
  15.     if(smod < 0.5) {
  16.         if(tmod < 0.5) 
  17.         Ci = Cs;
  18.         else
  19.         Ci = blackcolor;
  20.     } else {
  21.         if(tmod < 0.5) 
  22.         Ci = blackcolor;
  23.         else
  24.         Ci = Cs;
  25.     }
  26.  
  27.     Oi = Os;
  28.     Ci = Oi*Ci*(
  29.         Ka*ambient() + 
  30.         Kd*diffuse(faceforward(normalize(N),I)) );
  31. }
  32.